package com.yiwyn.utils;

import com.yiwyn.domain.Pair;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;

import java.util.List;

public class SpelUtil {


    public static String getValue(String key, List<Pair> params) {
        //解析器
        SpelExpressionParser spelExpressionParser = new SpelExpressionParser();

        EvaluationContext context = new StandardEvaluationContext();
        //设置上下文
        for (Pair param : params) {
            context.setVariable(param.getKey(), param.getValue());
        }
        //设置表达式，获得该表达式的表达
        Expression expression1 = spelExpressionParser.parseExpression(key);
        //使用表达器从上下文中获取对象
        String value = expression1.getValue(context, String.class);
        return value;
    }


}
